import axios from 'axios';
import NProgress from 'NProgress'
import { ElMessage } from 'element-plus'
// 创建axios实例
const service = axios.create({
  baseURL: '', // api的base_url
  timeout: 5000 // 请求超时时间
});
 
// 请求拦截器
service.interceptors.request.use(
  config => {
    // 可以在这里添加请求头，例如：'Authorization'
    // if (store.getters.token) {
    //   config.headers['Authorization'] = `Bearer ${store.getters.token}`;
    // }
    console.log('收到请求')
    NProgress.start();
    return config;
  },
  error => {
    // 请求错误处理
    console.log(error); // for debug
    Promise.reject(error);
  }
);
 
// 响应拦截器
service.interceptors.response.use(
  response => {
    // 可以在这里对响应数据进行处理，例如：对返回的状态码进行判断
    const res = response.data;
    NProgress.done(true);   // 强制完成
    ElMessage({
        message: '调用成功',
        type: 'error',
        duration: 5 * 1000
      });
    // if (res.code !== 200) {
    //   Message({
    //     message: res.message,
    //     type: 'error',
    //     duration: 5 * 1000
    //   });
    //   // 50008: 非法用户; 50012: 其他客户端; 50014: 令牌超时
    //   if (res.code === 50008 || res.code === 50012 || res.code === 50014) {
    //     MessageBox.confirm('你已被登出，可以取消继续留在该页面，或者重新登录', '确认登出', {
    //       confirmButtonText: '重新登录',
    //       cancelButtonText: '取消',
    //       type: 'warning'
    //     }).then(() => {
    //       store.dispatch('user/resetToken').then(() => {
    //         location.reload();
    //       });
    //     });
    //   }
    //   return Promise.reject('error');
    // } else {
    //   return res;
    // }
    return response;
  },
  error => {
    console.log('err' + error); // for debug
    ElMessage({
      message: error.message,
      type: 'error',
      duration: 5 * 1000
    });
    NProgress.done(true);   // 强制完成
    return Promise.reject(error);
  }
);
 
export default service;